/**
 * grayrabbit Inc.
 * Copyright (c) 2011-2012 All Rights Reserved.
 */
package com.grayrabbit.slacker.config;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;

/**
 * xml配置信息对应类
 * 
 * @author liyd
 * @version $Id: Configuration.java, v 0.1 2012-5-9 上午9:36:13 liyd Exp $
 */
public class Configuration {

    /** 需要生成代码的任务集合 队列方式 先进先出 按xml的配置顺序 */
    private static Queue<GenerateConfig> generateConfigs = new LinkedList<GenerateConfig>();

    /** 生成的类信息 生成dao和xml文件及实现类需要引用接口时方便引用 */
    private static Map<String, String>   classMap       = new HashMap<String, String>();

    /**
     * 添加一个配置任务
     * 
     * @param generateName 任务名
     * @param generateConfig 任务配置信息
     */
    public static synchronized void offerGenerateConfig(GenerateConfig generateConfig) {

        generateConfigs.offer(generateConfig);

    }

    /**
     * 获取一个任务配置信息
     * 
     * @param generateName
     * @return
     */
    public static GenerateConfig pollGenerateConfig() {

        return generateConfigs.poll();
    }

    /**
     * 添加一个类信息
     * 
     * @param tableName
     * @param className
     */
    public static void addClass(String key, String className) {

        classMap.put(key, className);
    }

    /**
     * 获取一个实体类信息
     * 
     * @param tableName
     * @return
     */
    public static String getClass(String key) {

        return classMap.get(key);
    }

}
